package br.com.app.template;
import android.app.Application;
import com.facebook.stetho.Stetho;
import com.google.gson.Gson;
import com.squareup.leakcanary.LeakCanary;
import com.squareup.okhttp.Cache;
import com.squareup.okhttp.OkHttpClient;
import org.acra.ACRA;
import org.acra.annotation.ReportsCrashes;
import org.androidannotations.annotations.AfterInject;
import org.androidannotations.annotations.Bean;
import org.androidannotations.annotations.EApplication;
import java.util.concurrent.TimeUnit;
import br.com.app.template.utils.ACRASender;
import retrofit.RestAdapter;
import retrofit.client.OkClient;
import retrofit.converter.GsonConverter;
/**
* Created by artur on 05/08/15.
*/
@ReportsCrashes(
formUri = ""
)
@EApplication
public class AppApplication extends Application {
@Bean
ACRASender acraSender;
private TwitterService twitterService;
@AfterInject
public void init() {
ACRA.init(this);
ACRA.getErrorReporter().setReportSender(acraSender);
if (BuildConfig.IS_DEBUGGING) {
LeakCanary.install(this);
Stetho.initialize(
Stetho.newInitializerBuilder(this)
.enableDumpapp(
Stetho.defaultDumperPluginsProvider(this))
.enableWebKitInspector(
Stetho.defaultInspectorModulesProvider(this))
.build());
}
//FOR SAMPLE PURPOSE
OkHttpClient okHttpClient = new OkHttpClient()
.setCache(new Cache(getCacheDir(), 1024 * 1024 * 10));
okHttpClient.setReadTimeout(5, TimeUnit.SECONDS);
okHttpClient.setRetryOnConnectionFailure(true);
okHttpClient.setWriteTimeout(1, TimeUnit.MINUTES);
okHttpClient.setReadTimeout(5, TimeUnit.MINUTES);
twitterService = new RestAdapter.Builder()
.setEndpoint("https://api.twitter.com")
.setConverter(new GsonConverter(new Gson(), "UTF-8"))
.setClient(new OkClient(okHttpClient))
.build()
.create(TwitterService.class);
}
public TwitterService getTwitterService() {
return twitterService;
}
}